// node.js v22.19.0
/*
  HTTP API
	(示例)：
	GET /api/help: 得到关于API的帮助信息
    PUT /api/memory/{address}: 向用户拥有写入权限的公共区或私有区指定地址写入字节数据（指令或普通数据）。
    GET /api/memory/{address}: 从公共区或私有区读取字节数据。
    POST /api/public/lease/{address_start}/{length}/{duration_hours}: 租赁公共区指定范围的写入权限（需支付游戏币，按时长计费）。
    GET /api/public/my_leases: 查询当前用户拥有的公共区租赁权限。
    GET /api/public/image: 获取公共区当前渲染的图片。
  */

const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;

// 中间件
app.use(express.json());





// 模拟数据（内存存储）
let items = [
    { id: 1, name: 'Item 1', price: 10 },
    { id: 2, name: 'Item 2', price: 20 }
];

app.get('/api/help', (req, res) => {
    res.json({
		return:[
			"GET /api/help: 得到关于API的帮助信息",
			"GET /api/memory/{address}/{ticket}: "
			"PUT /api/memory/{address}: 向用户拥有写入权限的公共区或私有区指定地址写入字节数据（指令或普通数据）",
			"GET /api/memory/{address}: 从公共区或私有区读取字节数据",
			"POST /api/public/lease/{address_start}/{length}/{duration_hours}: 租赁公共区指定范围的写入权限（需支付游戏币，按时长计费）",
			"GET /api/public/my_leases: 查询当前用户拥有的公共区租赁权限",
			"GET /api/public/image: 获取公共区当前渲染的图片",
			]
		});
});


// 获取所有项目 - GET /api/items
app.get('/api/items', (req, res) => {
    res.json(items);
});

// 获取单个项目 - GET /api/items/:id
app.get('/api/items/:id', (req, res) => {
    const item = items.find(i => i.id === parseInt(req.params.id));
    if (!item) return res.status(404).send('Item not found');
    res.json(item);
});

// 创建新项目 - POST /api/items
app.post('/api/items', (req, res) => {
    const newItem = {
        id: items.length + 1,
        name: req.body.name,
        price: req.body.price
    };
    items.push(newItem);
    res.status(201).json(newItem);
});

// 更新项目 - PUT /api/items/:id
app.put('/api/items/:id', (req, res) => {
    const item = items.find(i => i.id === parseInt(req.params.id));
    if (!item) return res.status(404).send('Item not found');

    item.name = req.body.name;
    item.price = req.body.price;

    res.json(item);
});

// 删除项目 - DELETE /api/items/:id
app.delete('/api/items/:id', (req, res) => {
    const itemIndex = items.findIndex(i => i.id === parseInt(req.params.id));
    if (itemIndex === -1) return res.status(404).send('Item not found');

    const deletedItem = items.splice(itemIndex, 1);
    res.json(deletedItem);
});

// 启动服务器
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});
